#!/bin/bash

# APK Resign Tool - 依赖检查模块
# 检查所需工具是否已安装

# 从其他模块导入函数
if [ -z "$(type -t get_build_tools_path)" ]; then
    source "$(dirname "${BASH_SOURCE[0]}")/config.sh"
fi

# 检查是否安装了所需工具
check_dependencies() {
    local missing_deps=0
    local build_tools_path=$(get_build_tools_path)
    
    # 检查apktool
    if ! command -v apktool &> /dev/null; then
        echo "错误：未安装apktool"
        missing_deps=1
    fi
    
    # 检查build-tools路径
    if [ -z "$build_tools_path" ]; then
        echo "警告：未设置Android build-tools路径"
        echo "您可以使用以下命令设置：$0 set-path /path/to/android-sdk/build-tools/version"
        
        # 尝试在PATH中查找build-tools
        if ! command -v zipalign &> /dev/null; then
            echo "错误：zipalign不在PATH中"
            missing_deps=1
        fi
        
        if ! command -v apksigner &> /dev/null; then
            echo "错误：apksigner不在PATH中"
            missing_deps=1
        fi
    else
        echo "使用Android build-tools路径：$build_tools_path"
        
        # 检查工具是否存在于指定路径
        if [ ! -f "$build_tools_path/zipalign" ]; then
            echo "错误：在build-tools路径中找不到zipalign"
            missing_deps=1
        fi
        
        if [ ! -f "$build_tools_path/apksigner" ]; then
            echo "错误：在build-tools路径中找不到apksigner"
            missing_deps=1
        fi
    fi
    
    # 检查keytool
    if ! command -v keytool &> /dev/null; then
        echo "错误：未安装keytool"
        missing_deps=1
    fi
    
    # 检查aapt（用于analyze_and_launch）
    if ! command -v aapt &> /dev/null; then
        local build_tools_path=$(get_build_tools_path)
        if [ -z "$build_tools_path" ] || [ ! -f "$build_tools_path/aapt" ]; then
            echo "警告：未安装aapt（用于analyze_and_launch）"
        fi
    fi
    
    # 检查adb（用于analyze_and_launch）
    if ! command -v adb &> /dev/null; then
        echo "警告：未安装adb（用于analyze_and_launch）"
    fi
    
    if [ $missing_deps -eq 0 ]; then
        echo "所有依赖项已安装"
        return 0
    else
        return 1
    fi
} 